#ifndef _RESOURCE_H_
#define _RESOURCE_H_

#include "simgrid.h"
#include <cstdio>
#include <cstring>
#include <exception>
#include <stdexcept>



/*"Abstract" class*/
class Resource {

	protected:
		/*Name of the resource*/
		const char *name;

		/*Resource abstratcion of SimGrid*/
		SG_Resource resource;
		
	public:
		/*Constructor*/
		Resource(const char *name);
		/*Destructor*/
		~Resource();
		/*Gets the resource name*/
		const char *getName();
		/*Get the SG_resource*/
		SG_Resource getSGResource();
		/*Get resource type (SG_LINK, SG_HOST or SG_ROUTE)*/
		SG_resource_t getType();
		/*Return if the performance information of this resource are trace-based (0) or have fixed value (1)*/
		bool isPerformanceConstant();
};

#endif //_RESOURCE_H_
